package com.intelligent.mapper;

import com.intelligent.pojo.Equipment;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;

/**
* @author lenovo
* @description 针对表【equipment(设备信息表)】的数据库操作Mapper
* @createDate 2025-09-01 14:03:08
* @Entity com.intelligent.pojo.Equipment
*/
public interface EquipmentMapper extends BaseMapper<Equipment> {

    /**
     * 分页查询设备（左连接用户表），支持多条件筛选。
     * 参数均为可选，空值不参与筛选。
     *
     * @param page 分页对象
     * @param equipmentCode 设备编号（模糊）
     * @param equipmentName 设备名称（模糊）
     * @param username 设备负责人用户名（模糊）
     * @param status 状态（精确）0启用 1禁用
     * @return 分页结果，包含设备负责人用户名
     */
    IPage<Equipment> pageEquipment(Page<Equipment> page,
                                   @Param("equipmentCode") String equipmentCode,
                                   @Param("equipmentName") String equipmentName,
                                   @Param("username") String username,
                                   @Param("status") Integer status);

    /**
     * 根据ID查询设备（关联用户表）
     *
     * @param equipmentId 设备ID
     * @return 设备信息，包含设备负责人用户名
     */
    Equipment getEquipmentById(@Param("equipmentId") Long equipmentId);

    /**
     * 添加设备
     *
     * @param equipment 设备信息
     * @return 影响行数
     */
    int addEquipment(Equipment equipment);

    /**
     * 修改设备
     *
     * @param equipment 设备信息
     * @return 影响行数
     */
    int updateEquipment(Equipment equipment);

    /**
     * 删除设备
     *
     * @param equipmentId 设备ID
     * @return 影响行数
     */
    int deleteEquipment(@Param("equipmentId") Long equipmentId);
}




